From 0a8f3082f61c46bd1b48b2d8261364bf97f255f1 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Tue, 28 Jul 2009 16:41:13 +0100 Subject: [PATCH] xend: pass-through: fix pci passthrough for pv guest C/S 19754: a5f584c1e2f6 breaks pci passthrough for pv guest. Signed-off-by: Dexuan Cui --- tools/python/xen/xend/server/pciif.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tools/python/xen/xend/server/pciif.py b/tools/python/xen/xend/server/pciif.py index 823a77c40f..441c7b8f68 100644 --- a/tools/python/xen/xend/server/pciif.py +++ b/tools/python/xen/xend/server/pciif.py @@ -403,6 +403,17 @@ class PciController(DevController): ' same guest with %s' raise VmError(err_msg % (s, dev.name)) + # Assigning device staticaly (namely, the pci string in guest config + # file) to PV guest needs this setupOneDevice(). + # Assigning device dynamically (namely, 'xm pci-attach') to PV guest + # would go through reconfigureDevice(). + # + # For hvm guest, (from c/s 19679 on) assigning device statically and + # dynamically both go through reconfigureDevice(), so HERE the + # setupOneDevice() is not necessary. + if not self.vm.info.is_hvm(): + for d in pci_dev_list: + self.setupOneDevice(d) wPath = '/local/domain/0/backend/pci/%u/0/aerState' % (self.getDomid()) self.aerStateWatch = xswatch(wPath, self._handleAerStateWatch) log.debug('pci: register aer watch %s', wPath) -- 2.30.2